home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1997 December / PC Pro December 1997 CD-Rom coverdisc.iso / symantec / dbAnywh / JAVA.BIN / CLASSES.ZIP / sun / tools / tree / BreakStatement.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-12-14  |  2.3 KB  |  54 lines

  1. package sun.tools.tree;
  2.  
  3. import java.io.PrintStream;
  4. import java.util.Hashtable;
  5. import sun.tools.asm.Assembler;
  6. import sun.tools.java.Environment;
  7. import sun.tools.java.Identifier;
  8. import sun.tools.java.Type;
  9.  
  10. public class BreakStatement extends Statement {
  11.    Identifier lbl;
  12.  
  13.    public BreakStatement(int var1, Identifier var2) {
  14.       super(98, var1);
  15.       this.lbl = var2;
  16.    }
  17.  
  18.    long check(Environment var1, Context var2, long var3, Hashtable var5) {
  19.       ((Statement)this).reach(var1, var3);
  20.       CheckContext var6 = (CheckContext)(new CheckContext(var2, this)).getBreakContext(this.lbl);
  21.       if (var6 != null) {
  22.          var6.vsBreak &= var3;
  23.       } else if (this.lbl != null) {
  24.          var1.error(super.where, "label.not.found", this.lbl);
  25.       } else {
  26.          var1.error(super.where, "invalid.break");
  27.       }
  28.  
  29.       return -1L;
  30.    }
  31.  
  32.    public int costInline(int var1) {
  33.       return 1;
  34.    }
  35.  
  36.    public void code(Environment var1, Context var2, Assembler var3) {
  37.       CodeContext var4 = new CodeContext(var2, this);
  38.       CodeContext var5 = (CodeContext)((Context)var4).getBreakContext(this.lbl);
  39.       ((Statement)this).codeFinally(var1, var2, var3, var5, (Type)null);
  40.       var3.add(super.where, 167, var5.breakLabel);
  41.       var3.add(var4.breakLabel);
  42.    }
  43.  
  44.    public void print(PrintStream var1, int var2) {
  45.       super.print(var1, var2);
  46.       var1.print("break");
  47.       if (this.lbl != null) {
  48.          var1.print(" " + this.lbl);
  49.       }
  50.  
  51.       var1.print(";");
  52.    }
  53. }
  54.